bgo#580560 - Make Backspace work in the file chooser to to to the parent directory
authorFederico Mena Quintero <federico@novell.com>
Mon, 15 Jun 2009 17:37:07 +0000 (12:37 -0500)
committerFederico Mena Quintero <federico@novell.com>
Mon, 15 Jun 2009 17:37:07 +0000 (12:37 -0500)
commit2b3de3dd75384a0af99f92656cdd70d72319ca6c
treedde4a3b3a9a60f23cab642e13e32a51ccfaa9798
parentbc42bca9ddb6270681ead9289fe638d121d9a6c7
bgo#580560 - Make Backspace work in the file chooser to to to the parent directory

GtkFileChooserDefault actually implements a binding signal for
Backspace, to make it go to the parent directory.  However,
GtkTreeView was eating our Backspace, and thus the file chooser was
not getting a chance to execute its binding signal.

GtkTreeView implements a Backspace binding itself, which it uses to
move to the parent node of the current cursor node.  However, the
binding handler would return TRUE even if there was no parent to the
current node.  Now the binding handler only returns TRUE if it
actually changed the cursor.

Additionally, gtk_tree_view_key_press() sees if no bindings handled a
key press; in that case, it re-sends the key press to the treeview's
search entry.  However, sending a Backspace to an empty entry makes
the entry beep.  Thus, we add a flag that gets set from GtkTreeView's
Backspace binding handler, to tell gtk_tree_view_key_press() when it
should *not* re-emit the key press on the search entry.  Sort of,
"yeah, I didn't handle this key press, but I don't want you to send it
to the search entry, either!".

Signed-off-by: Federico Mena Quintero <federico@novell.com>
gtk/gtktreeprivate.h
gtk/gtktreeview.c